#ifndef INTERFACE_H
#define INTERFACE_H

#include "interface_global.h"
#include <QString>
// 当前的Interface.h这个头文件是需要跟随动态库发布给使用者的
// 我们在当前头文件中如果包含了其他头文件, 那么也需要将这些头文件一定发布出去
// #include "seckeyshm.h"

/*
 * 外联接口作用:
 *  1. 读共享内存中的秘钥        -->  内部操作
 *  2. 使用秘钥对数据进行AES加密  -->  需要提供对外接口
 *  3. 使用秘钥对数据进行AES解密  -->  需要提供对外接口
*/

class SeckeyShm;
class INTERFACESHARED_EXPORT Interface
{

public:
    Interface(std::string path = "Config/interface.json");
    // 数据加密, 将明文 -> 密文
    std::string encryptString(std::string msg);
    // 数据解密, 将密文 -> 明文
    std::string decryptString(std::string msg);

private:
    QString     m_clientID;
    QString     m_serverID;
    SeckeyShm*  m_shm;
};

#endif // INTERFACE_H
